Sou apenas um iniciante na codificação Swift. Minha ideia é bastante simples, que é um aplicativo com dois botões. Quando clicado, um campo de texto mudará seu texto. No Main.StoryBoard, adiciono um campo de texto e dois botões. No arquivo ViewController.swift. Eu escrevo assim: importar UIKit classe ViewController: UIViewController { @IBOutlet fraco var textfield: UITextField! Botão de var fraco @IBOutlet: UIButton! @IBOutlet fraco var button2: UIButton! @IBAction func action1 (_ sender: UIButton) { textfield.text = "você acabou de clicar no button1" } @IBAction func action2 (_ sender: UIButton) { textfield.text = "você acabou de clicar no button2" } } É para estar tudo bem. No entanto, aparece um erro que mostra: thread1: sinal SIGABRT na linha AppDelegate.swift do arquivo: classe AppDelegate: UIResponder, UIApplicationDelegate o que está errado com meu código?
2021-01-15 08:18:09
Para resolver o problema, primeiro limpe o projeto e depois reconstrua. Para limpar o projeto, vá para MenuBar: Produto -> Limpar Então, para reconstruir o projeto, basta clicar no botão Executar normalmente. | Você obtém um erro SIGABRT sempre que tem uma tomada desconectada. Clique em seu controlador de visualização no storyboard e vá para conexões no painel lateral (o símbolo de seta). Veja se você tem uma tomada extra lá, uma duplicata ou uma extra que não está conectada. Se não for isso, talvez você não tenha conectado suas saídas ao seu código corretamente. Lembre-se de que o SIGABRT acontece quando você está tentando ligar para um outlet (botão, view, campo de texto, etc) que não está lá. | Para mim, não era uma saída. Resolvi o problema indo ao erro E lendo o que dizia. (Também Noob ..) Este foi o erro: E a solução estava aqui: Basta rolar para cima na saída e o erro será revelado. | Um motivo comum para esse tipo de erro é que você pode ter alterado o nome do seu IBOutlet ou IBAction. Você pode simplesmente verificar isso acessando o código-fonte. Clique em main.storyboard e selecione abrir como e selecione o código-fonte o código fonte abrirá e então verifique se existe o nome do iboutlet ou ibaction que você alterou, se houver então selecione a parte e exclua-a e então crie novamente iboutlet ou ibaction. Isso deve resolver o seu problema | No meu caso, não estava recebendo o erro apenas a falha no AppDelegate e tive que desmarcar a próxima opção: OS_ACTIVITY_MODE, então eu poderia obter o verdadeiro motivo da falha no meu arquivo .xib Espero que isso possa ajudá-lo também :) | Eu tive o mesmo problema. Fiz um botão no storyboard e conectei ao ViewController, e depois apaguei o botão. Então a conexão ainda estava lá, mas o botão não, então eu obtive o mesmo erro que você. Consertar: Vá para o inspetor de conexão (a seta no canto superior direito, em seu storyboard) e exclua todas as conexões não utilizadas. | Se você encontrar isso no Xcode 10, terá que limpar antes de construir. Ou mude para o sistema de compilação legado. Arquivo -> Configurações do espaço de trabalho ... -> Sistema de compilação: Sistema de compilação legado. | No meu caso, não havia registro algum. Meu erro foi empurrar um controlador de visualização em uma pilha de navegação que já fazia parte da pilha de navegação. | Às vezes, também acontece quando a função precisa ser executada apenas na thread principal, então você pode corrigi-la atribuindo-a à thread principal da seguinte maneira: - DispatchQueue.main.async { seu código aqui } | Para mim, esse erro foi porque eu tinha uma etapa de preparação de transição que não era aplicável à transição que estava sendo feita. longa história: substituir função preparar (para segue: UIStoryboardSegue, remetente: Qualquer?) { deixe gosetup = segue.destination como! Atualizar gosetup.wherefrom = updatestring } Isso estava sendo feito para todos os segue, quando era apenas para um. Então eu crio um booleano e coloco o gosetup dentro dele. | Este é um erro muito comum e pode acontecer por vários motivos. O mais comum é quando um IBOUTLET / IBACTION conectado a um controlador de visualização no storyboard é excluído do arquivo swift, mas não do storyboard. Se não for esse o caso, use o log na barra de ferramentas inferior para descobrir qual é o erro e diagnosticá-lo. Você pode usar pontos de interrupção e depuração para ajudá-lo a encontrar o erro. Para descobrir como corrigir o erro, use este artigo que encontrei no Google: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode | No meu caso, eu estava usando RxSwift para fazer pesquisas. Eu continuei usando extensivamente uma instância compartilhada de uma classe específica dentro do método onNext, o que provavelmente a tornou inacessível (Mutex). Certifique-se de que tais instâncias sejam tratadas com cuidado apenas quando absolutamente necessário. No meu caso, usei algumas variáveis de antemão para armazenar com segurança (e sequencialmente) os valores de retorno dos métodos da instância compartilhada e os reutilizei dentro do bloco onNext. | Eu tive o mesmo problema. No meu caso, apenas sobrescrevi o arquivo GoogleService-Info.plist nesse caminho: Platform \ ios \ YOUR_APP_NAME \ Resources \ Resources No meu caso, os arquivos estavam presentes sem dados. | Questão altamente ativa. Ganhe 10 reputação para responder a esta pergunta. O requisito de reputação ajuda a proteger essa pergunta contra spam e atividades sem resposta. Não é a resposta que você está procurando? Navegue por outras questões com a tag ios swift ou faça suas próprias perguntas.